package com.qf.springmvc.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.qf.springmvc.util.MyDoubleSerializer;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;

/**
 * @author 钻五大人
 * @date 2022/4/29 13:04
 */
@Data
//@JsonInclude(JsonInclude.Include.NON_NULL) //只序列化非null的属性,null值就忽略掉这个属性
@JsonInclude(JsonInclude.Include.NON_EMPTY) //只序列化非null的属性,null值或空字符串就忽略掉这个属性
public class User {
    private Integer id;
    // 在json序列化的时候,单独指定的别名
    @JsonProperty("username")
    private String name;
    // 排除这个属性的序列化
    // 前段传递的时候不接收这个属性,后端返回给前段时也不序列化这个属性
    @JsonIgnore()
    private String password;
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    // timezone;指定时区的 GMT+8 东八区的时间[北京时间] GMT格林威治标准时间
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")//json序列化使用的注解
    private Date birthday;

    // 员工的工资,需要四舍五入进行序列化
    @JsonSerialize(using = MyDoubleSerializer.class)
    private Double salary;

    private String sex;
}
